For systems using a microcontroller executing part of its software in a discrete memory device connected through a printed circuit board, data accesses to/from the memory can be easily analyzed because of the physical access to the memory device or microcontroller package pins and/or copper lines of the printed circuit board. The memories may contain part of the software which runs on the microcontroller and therefore may contain intellectual property of the company which developed the software.
Scrambling the data makes the analysis more difficult, especially if the scrambling method depends on a user configurable key. Conventional scrambling algorithms, however, remain constant and can be determined by correlating large amounts of data. Even if the scrambling algorithm remains unknown, the key may be the same for a series of integrated circuit devices in a given revision/release of embedded software. As a consequence, the scrambling behavior can be the same among a series of integrated circuit devices in a given revision/release of embedded software, thus allowing the data to be recovered.